package designPattern.visitorPattern.visitor;


import java.util.ArrayList;
import java.util.List;

/**
 * Test
 *
 * @author nanxin.chen
 * @date 2015/8/29
 */
public class Test {
    public static void main(String[] args) {
        IShoppingVisitor ivNormal = new VisitorNormal();
        IShoppingVisitor ivDiscount = new VisitorDiscount();
        List<IGoods> shopList = new ArrayList();
        shopList.add(new Book("java", 2, 15, "1234"));
        shopList.add(new Fruit("苹果", 2, 15));

        for (IGoods g : shopList) {
            g.accept(ivNormal);   //被观察者调用 accept（观察者），回调 观察者的 visit（被观察者）
        }
        System.out.println("打折啦...");
        for (IGoods g : shopList) {
            g.accept(ivDiscount);   //被观察者调用 accept（观察者），回调 观察者的 visit（被观察者）
        }
    }
}
